From: Ivan Molodetskikh Date: Fri, 17 Dec 2021 07:17:35 +0000 (+0300) Subject: screencastService: Create directory if it doesn't exist X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~530^2^2~248 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=0e4b87fe5adeb388dad92978a9bf55780782516c;p=gnome-shell.git screencastService: Create directory if it doesn't exist Instead of testing if the videos directory exists and using the home directory otherwise, just try to create the target directory. This aligns with how the screenshot UI handles the screenshots folder, and it's convenient for putting screencasts into a subdirectory. Part-of: --- diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js index 708a15c84..069b00d1a 100644 --- a/js/dbusServices/screencast/screencastService.js +++ b/js/dbusServices/screencast/screencastService.js @@ -58,6 +58,14 @@ var Recorder = class { this._height = height; this._filePath = filePath; + try { + const dir = Gio.File.new_for_path(filePath).get_parent(); + dir.make_directory_with_parents(null); + } catch (e) { + if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.EXISTS)) + throw e; + } + this._pipelineString = DEFAULT_PIPELINE; this._framerate = DEFAULT_FRAMERATE; this._drawCursor = DEFAULT_DRAW_CURSOR; @@ -287,9 +295,6 @@ var ScreencastService = class extends ServiceImplementation { return filename; let videoDir = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_VIDEOS); - if (!GLib.file_test(videoDir, GLib.FileTest.EXISTS)) - videoDir = GLib.get_home_dir(); - return GLib.build_filenamev([videoDir, filename]); }